perm filename FORMAT.MLI[MLI,LSP] blob
sn#112513 filedate 1975-06-03 generic text, type T, neo UTF8
BEGIN
% This function formats a LISP file in PPRINT format. %
% The command is: %
% (FORMAT <file> ... <file>) %
% where each <file> is either name or (name.ext) or a line length. %
% The file is assumed to be in base 8. The output is put on name.FMT . %
SPECIAL IBASE, ?*NOPOINT;
FEXPR FORMAT (FILE_LIST);
BEGIN NEW FILE_NAME, X, LL, IBASE, ?*NOPOINT;
IBASE ← 8;
?*NOPOINT ← NIL;
FOR NEW FILE IN FILE_LIST DO
BEGIN
IF NUMBERP FILE THEN RETURN LL ← FILE % A line length %
ELSE IF ATOM FILE THEN FILE_NAME ← FILE
ELSE FILE_NAME ← CAR FILE; % Strip off any extension %
PRINTSTR TERPRI(
(IF ATOM FILE THEN FILE_NAME
ELSE FILE_NAME CAT "." CAT CDR FILE)
CAT " → " CAT FILE_NAME CAT ".FMT");
EVAL <'INC, <'INPUT, 'DSK?:, FILE>, NIL>;
EVAL <'OUTC, <'OUTPUT, 'DSK?:, FILE_NAME CONS 'FMT>, NIL>;
WHILE NOT ATOM X ← ERRSET(READ(), T) DO
BEGIN
LINELENGTH LL;
DPRINT(X ← CAR X, NIL);
IF NOT ATOM X AND CAR X EQ 'DEFPROP THEN PRINTTY(CADR X);
END;
INC(NIL, T);
OUTC(NIL, T);
TERPRI NIL;
END;
RETURN 'FINISHED;
END;
END.